iT邦幫忙

2025 iThome 鐵人賽

DAY 8
0
Software Development

從零開始學 Python系列 第 8

Day 8 - List(串列)操作:增刪改查、排序讓資料動起來!

  • 分享至 

  • xImage
  •  

今天的學習內容: 串列(List)

串列可以用來儲存一群資料,像是成績、待辦事項、購物清單⋯⋯幾乎所有日常生活中的資料都可以透過串列來管理!

串列操作的四大基本功:增、刪、改、查

1. 增加元素

方法 用法 功能 範例 結果
.append() list.append(x) 在串列最後加上一個元素 a = [1, 2]; a.append(3) [1, 2, 3]
.insert() list.insert(index, x) 在指定位置插入一個元素(原本的元素往後移) a = [1, 3]; a.insert(1, 2) [1, 2, 3]

2. 刪除元素

方法 用法 功能 範例 結果
.remove() list.remove(x) 刪除第一個出現的指定值(找不到會報錯) a = [1, 2, 2, 3]; a.remove(2) [1, 2, 3]
del del list[index]del list[start:end] 依位置刪除單一或多個元素,也可刪除整個串列 a = [1, 2, 3]; del a[1] [1, 3]
.pop() list.pop()list.pop(index) 刪除並回傳指定位置的元素,預設刪最後一個 a = [1, 2, 3]; x = a.pop(1) a = [1, 3], x = 2
# 建立一個串列
fruits = ["apple", "banana", "cherry"]

# 增:新增一個元素
fruits.append("orange")           # 加在最後
fruits.insert(1, "grape")         # 插入到指定位置

# 刪:刪除一個元素
fruits.remove("banana")           # 刪除指定值
deleted = fruits.pop()            # 刪除最後一個,並回傳它
del fruits[0]                     # 刪除指定位置的值

# 改:修改某個位置的值
fruits[0] = "watermelon"          # 改成新的值

# 查:取得某個值或遍歷整個串列
print("cherry" in fruits)         # 查詢是否存在
for fruit in fruits:
    print(fruit)

輸出:

True
grape
watermelon
cherry

串列排序

1. Python 串列排序的兩種方式

** sort() 方法 和 sorted() 函數 **

方法 是否改變原本串列 用法 回傳值
.sort() 會改變原本串列 list.sort() None(不會回傳新串列)
sorted() 不會改變原本串列 sorted(list) 回傳新串列

(1) list.sort()

numbers = [5, 3, 8, 1]
numbers.sort()   # 直接改變原本串列
print(numbers)   # [1, 3, 5, 8]
  • 預設由小到大排序(升冪)
  • 改變了 numbers 內容
  • 沒有回傳新串列(回傳值是 None)
    .sort() 是「原地排序」(in-place sort),它直接改變原本的串列,不需要回傳新的串列,所以回傳值是 None。

(2) sorted(list)

numbers = [5, 3, 8, 1]
new_list = sorted(numbers)  # 回傳排序後的新串列
print(numbers)  # [5, 3, 8, 1](原本的串列不變)
print(new_list) # [1, 3, 5, 8]
  • 不會改變原本串列
  • 會回傳排序後的新串列
  • 適合要保留原本資料的情況

2. 排序方向

(1) 升冪(由小到大,預設)

nums = [3, 1, 4, 1, 5]
nums.sort()
print(nums)  # [1, 1, 3, 4, 5]

(2) 降冪(由大到小)

nums = [3, 1, 4, 1, 5]
nums.sort(reverse=True)
print(nums)  # [5, 4, 3, 1, 1]

reverse=True 表示反向排序

3. 字串排序

fruits = ["banana", "apple", "cherry"]
fruits.sort()
print(fruits)  # ['apple', 'banana', 'cherry'] → 按字母順序

注意:字串排序是根據 字母順序(ASCII / Unicode 編碼)
大寫字母的排序會在小寫字母之前。

4. 自訂排序條件

使用 key 參數可以設定排序的依據。
(1) 依字串長度排序

fruits = ["banana", "apple", "cherry", "kiwi"]
fruits.sort(key=len)
print(fruits)  # ['kiwi', 'apple', 'banana', 'cherry']

(2) 忽略大小寫排序

fruits = ["banana", "Apple", "cherry"]
fruits.sort(key=str.lower)
print(fruits)  # ['Apple', 'banana', 'cherry']

實作:

numbers = [42, 5, 13, 7, 99]

# 升冪排序(小到大)
numbers.sort()
print("升冪排序:", numbers)

# 降冪排序(大到小)
numbers.sort(reverse=True)
print("降冪排序:", numbers)

# 不改變原串列的排序(使用 sorted)
original = [3, 1, 4, 2]
print("原本:", original)
print("排序後:", sorted(original))
print("確認原串列沒變:", original)

螢幕擷取畫面 2025-08-10 125211

學習心得

今天學了串列(List)的增刪改查與排序方法,包括 .append()、.insert()、.remove()、del、以及 .pop() 的使用。比較有趣的是 .pop() 不只刪除,還會回傳被刪掉的值。不過我發現自己很容易忘記索引的對應方式,例如 a[0] → 1、a[1] → 2、a[2] → 3。每次在刪除或取值時,如果沒有先想清楚索引的位置,就會刪錯元素。
明天要學習 Tuple(不可變串列) 與 Set(集合)!


上一篇
Day 7 - 巢狀邏輯與 break / continue:讓流程控制更靈活!
下一篇
Day 9 - Tuple(不可變串列)與 Set(集合)
系列文
從零開始學 Python30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言